package com.liujit.pay.wx.enums;

import cn.hutool.core.util.StrUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @description: 交易状态
 * @author: liujun
 * @create: 2021/2/19 2:23 下午
 **/
@Getter
@AllArgsConstructor
public enum TradeState {
    /**
     * 支付成功
     */
    SUCCESS("SUCCESS", "支付成功"),
    /**
     * 转入退款
     */
    REFUND("REFUND", "转入退款"),
    /**
     * 未支付
     */
    NOT_PAY("NOTPAY", "未支付"),
    /**
     * Native支付
     */
    CLOSED("CLOSED", "已关闭"),
    /**
     * 已撤销（付款码支付）
     */
    EVOKED("EVOKED", "已撤销（付款码支付）"),
    /**
     * 用户支付中（付款码支付）
     */
    USER_PAYING("USERPAYING", "用户支付中（付款码支付）"),
    /**
     * 支付失败(其他原因，如银行返回失败)
     */
    PAY_ERROR("PAYERROR", "支付失败(其他原因，如银行返回失败)"),
    /**
     * 已接收，等待扣款
     */
    ACCEPT("ACCEPT", "已接收，等待扣款");

    private String state;

    private String name;

    public static String getName(String state) {
        for (TradeState tradeState : TradeState.values()) {
            if (StrUtil.equals(state, tradeState.getState())) {
                return tradeState.getName();
            }
        }
        return null;
    }
}
